#ifndef NEGATEDCONSTRAINT_H_
#define NEGATEDCONSTRAINT_H_

#include "constraint.h"
#include <boost/shared_ptr.hpp>

/// A non-terminal constraint for getting the logical negation of another
/// constraint.
class NegatedConstraint : public Constraint {
public:
	NegatedConstraint(boost::shared_ptr<Constraint>);
	virtual ~NegatedConstraint();

	bool consider(const Schedule&);
    std::string to_string();

private:
	boost::shared_ptr<Constraint> constraint_;
};

#endif
